Tutoriel de modelage de personnages pour Fallout 3

 
   
   
   
J'ai fait ce tutoriel car ceux qui existent déjà sont en anglais ou dans d'autres langues et assez mal foutus en plus.  
En effet ce n'est pas facile d'expliquer la marche à suivre assez complexe pour réaliser un modèle sans devenir soit ennuyeux et incompréhensible soit trop conci et obscure!  
   
Je me suis basé sur les tutoriels de Malos et les aides du site de Niftools.  
   
Pour réaliser le travail de modelage et d'importation dans le jeu fallout 3, il y faut tout d'abord un outil indispensable pour éditer les propriétés du modèle. Cet outil c'est NifSkope qui permet de charger un modèle au format .nif et de le manipuler de diverses manières.  
Rien qu'avec cet outil, on peut déjà faire pas mal de choses comme éditer les propriétés du modèle. On peut retirer des éléments, en remplacer d'autres, changer les textures, le type de rendu, l'orientation et la positions relative à l'origine, appliquer des animations etc...  
   
Mais cet outil ne permet pas de modifier la géométrie des éléments d'un modèle et la marge de manoeuvre intéressante reste limitée.  
Pour modifier la géométrie ou pour carrément refaire un modèle à partir de rien, il faudra un autre outil comme 3D Studio Max (très cher) ou un logiciel libre comme Blender.  
Pour ces deux outils il y a des plugins d'importation et exportation pour charger un modèle .nif et le modifier.  
   
Mais avant de commencer à créer un personnage, il faut avoir conscience des restrictions nécessaires. Par exemple pour un modèle de joueur, il faudra que ce modèle utilise le même squelette standard que tous les autres personnages. Les animations sont communes à tous les modèles et sont appliquées au squelette qui ensuite déformera le modèle selon les liaisons entre les sommets des polygones et les os du squelette.  
   
Lorsqu'on va importer un modèle dans 3D Studio Max par exemple, on va également importer un squelette standard : skeleton.nif  
Si on décide de créer un modèle à partir de zéro, il faudra garder le modèle importé comme référence car il faudra que certains endroits comme les poignets et le cou soient exactement à la même position que le modèle de référence, sinon les mains et la tête ne seront pas bien alignées et il y aura une fente visible.  
En effet un modèle de personnage pour Fallout 3 ne se compose pas d'un seul élément, pour le joueur, il sera divisé en plusieurs éléments qui doivent bien se raccorder.  
On aura le corps avec les bras et les jambes, la partie qu'on va modifier le plus souvent, puis la tête et finalement les deux mains.  
   
Une autre chose qu'il faut bien comprendre c'est qu'un modèle de joueur doit pouvoir revêtir des costumes ou armures différentes. Ces costumes et armures ne sont pas des éléments qui se surajoutent sur un modèle de corps nu.  
Le modèle de corps en souvêtement ( par soucis de pudeur de nos amis de Bethesda ) n'est utilisé que lorsque le costume ou l'armure est enlevée. Les parties découvertes du corps lorsqu'on porte une armure comme celle du raider à pointes ne proviennent pas du modèle du corps, mais font partie du modèle de l'armure.  
On a donc à chaque fois un modèle complet du cou aux poignets, jambes et pieds inclus, même si on fait un costume style bikini!  
   
Pour chaque armure, il faudra donc un modèle de base auquel on va ajouter des éléments qui seront à leur tour reliés au squelette pour le suivit des mouvements.  
On va donc importer le modèle de base, celui d'origine ou un autre qu'on aura déjà modélisé, et on va le modifier ou lui ajouter des éléments de vêtement. Puis on va appliquer une texture au moyen d'une map UV et enfin relier les sommets au squelette.  
   
Ca semble être un travail assez ennuyeux de devoir à chaque fois refaire le travail de mappage et de liaison au squelette, mais en fait il y a une astuce qui permet de simplifier le travail.  
Ce qu'on va faire, c'est importer le modèle de base, appliquer un vêtement par dessus sans toucher au modèle d'origine, appliquer la texture au vêtement et le relier au squelette.  
L'astuce consiste à utiliser NifScope pour mélanger les modèles et combiner des éléments de vêtement avec le modèle de base déjà prêt.  
   
En effet un modèle du format .nif peut être composé de plusieurs parties qui vont utiliser le même squelette pour les animations. Comme le squelette est toujours le même, on peut prendre des éléments d'un modèle et les insérer dans un autre. Bien sur, il faut que ces modèles soient compatibles pour ne pas avoir des parties qui se chevauchent et laissent apparaître des partie du modèle de base qui est au dessous aux mauvais endroits!  
Lorsqu'on crée un vêtement, il faut prendre garde à ne pas le faire trop moulant pour éviter que lors des animations il y ait des interpénétrations.  
   
Dans ce tutoriel, je ne vais pas entrer dans les détails sur le modelage d'un personnage dans 3D Studio Max ou Blender, je vais simplement donner la marche à suivre pour l'importation du modèle dans 3D Studio Max, pour la création ou la modification d'un modèle compatible et pour son exportation.  
Il y a suffisemment de tutoriels sur le fonctionnement général de 3D Studio Max, ce qui est intéressant c'est de savoir comment créer un modèle utilisable et complètement fonctionnel.  
   
La partie la plus importante sera destinée à comprendre la structure d'un modèle au format .nif et de savoir comment le modifier sans le rendre invalide.  
Chaque jeu qui utilise ce type de modèle nécessite une structure interne stricte sinon ce modèle risque de faire planter le jeu ou de ne pas fonctionner correctement.  
   
   
La première partie sera consacrée à la structure du fichier de modèle 3D . nif ( Netimmerse/Gamebryo):  
   
   
Ce type de modèle est utilisé par plusieurs jeux dont Oblivion et Fallout 3, c'est pourquoi on trouve pas mal de portages des modèles d'Oblivion pour Fallout 3.  
   
Ce fichier contient les éléments de la géométrie du modèle composée de triangles et de sommets.  
Il contient également les coordonnées de mappage des textures pour ces triangles et les liaisons des sommets avec les os du squelette.  
Il contient finalement des informations sur la structure du squelette, sur l'organisation des éléments, sur les textures et leur propriétés et sur divers paramètres du modèle.  
   
Avec NifSkope, on va pouvoir voir la structure du modèle, changer les paramètres, la position relative des éléments, leur orientation, échanger un élément pour un autre, en supprimer certains, en ajouter.  
Cet outil permet également de visualiser le modèle avec ses textures dans une fenêtre 3D, de lui appliquer des animations pour voir si tout fonctionne correctement après l'exportation de 3D Studio Max et le paramètrage.  
   
Lorsqu'on va créer une armure ou un vêtement pour un personnage, c'est à dire un corps complet sans tête ni mains, on va utiliser NifSkope pour mélanger les modèles.  
Ce qu'on va faire c'est charger le modèle fraichement modelé dans une fenêtre de NifSkope, charger le modèle de base dans une autre et un modèle de référence d'armure dans une troisième.  
   
On va ensuite faire du copier/coller d'éléments d'un modèle dans un autre afin de reconstruire un modèle d'armure composé du modèle de base et du vêtement modelé avec le squelette et les paramètres du modèle de référence pour garantir que le modèle sera valide.  
   
Comme modèle de référence, on peut prendre le modèle de la combinaison de l'abris 101 par exemple : Data\meshes\armor\vaultsuit\m\outfit.nif  
Pour le modèle de base, on peut prendre le modèle d'origine : Data\meshes\characters\_male\femaleupperbody.nif si on veut faire un personnage féminin par exemple. Ou alors on peut très bien créer son propre modèle de base, si on aimes les personnages féminins avec des formes généreuses et peu ou pas vêtues!!  
   
Il y a une particularité à ces modèles, c'est qu'ils peuvent être démembrés. Les bras, la tête et les jambes peuvent être arrachés. Si cet évènement doit avoir lieu dans le jeu, il faudra couper le modèle et placer aux moignons des fermetures ensanglantées pour éviter de voir à l'intérieur du modèle.  
Pour cet effet, on va placer sur les bras, les cuisses et le cou des éléments qui seront invisible en temps normal et qui seront rendu visibles au moment de la séparation. Il y aura à chaque fois deux éléments, un pour fermer le membre arraché et un autre pour fermer le corps.  
   
Généralement ces éléments sont regroupés en plusieurs groupes: un groupe pour les fermetures des bras et des jambes, un groupe pour la fermeture du col, un groupe pour la fermeture du cou.  
   
La partie visible dans le jeu du modèle en temps normal peut être divisée en plusieurs parties, mais ce n'est pas nécessaire. Le modèle de la tenue de l'abri 101 est composé de plusieurs éléments.  
   
Il y a le corps sans les bras, les deux bras dans un groupe, et 3 autres groupes pour le support du pipboy sur le bras gauche. Ce support du pipboy ne doit pas être obligatoirement réalisé. Ca a été fait dans un soucis de limiter le nombre de polygone du modèle au maximum. En effet on a un élément représentant un avant bras sans pipboy pour le cas où celui-ci est retiré, et deux petits éléments représentant les extrémités visibles sous le pipboy si celui ci est porté.  
Ce jeu a été fait pour être compatible avec les consoles et on a fait la chasse aux polygones inutiles pour alléger le travail du moteur du jeu. Si on veut faire du bon travail, on peut faire de même.  
   
Lorsqu'on va recombiner plusieurs modèles pour en faire un seul, on va se retrouver avec des polygones inutiles, puisqu'on va rajouter un élément de vêtement par dessus des polygones du modèle de base. C'est pas une situation idéale, mais ça fait gagner du temps au détriment des performances du moteur du jeu. Mais ce n'est pas grave vu que cette manoeuvre ne s'applique que pour le joueur dans la plupart des cas, car les autres PNJ ne changent pas de costumes sauf quelque uns comme les compagnons ou les marchands ou quelques cas particuliers. Le moteur ne sera pas trop pénalisé et avec un PC moderne on ne ressentira pas de différence visible.  
Mais si on est stakanoviste et qu'on veut faire un travail soigné, on va refaire un modèle complet pour chaque armure en optimisant le modèle avant de l'exporter pour avoir le nombre de polygone le plus faible possible tout en gardant un modèle le plus détaillé possible. Une autre possibilité c'est de découper le modèle de base en plusieurs parties afin de pouvoir supprimer tout ce qui ne sera pas visible sous l'armure. Mais comme les fanatiques de modelage de personnages se concentrent surtout sur des personnages féminin très peu vêtus, ce ne sont pas les quelques polygones d'un bikini minimaliste qui vont peser lourd dans la balance et si le vêtement est transparent, la question ne se pose plus!  
   
Exemples en images :  
   
modèle complet
 
On voit ici le modèle complet du modèle de base féminin d'origine de Fallout 3. Il est composé de plusieurs parties dont les polygones sont de différentes couleurs.  
   
modèle sans vêtementsFermeture pour démembrement
 
On voit sur l'image de gauche que le corps a été découpé en deux parties principales, le corps proprement dit et les souvêtements qui ont été supprimé sur cette image. On voit que les polygones du corps qui ne sont pas visibles ont été supprimés par soucis d'alléger le modèle. C'est pour cette raison que faire un modèle totalement nu demande du travail, il faut compléter les parties manquantes. Ceux qui pensaient simplement ôter les souvêtements on été déçus! On pourra imiter cette technique pour faire un modèle de base polyvalent dont on pourra ensuite supprimer certaines parties avec NifSkope lors du mélange des modèles.  
Sur l'image de droite on voit les fermetures pour l'effet de démembrement. Les quatre pièces de fermeture des membres en jaune et les pièces de fermeture du corps en orange. En blanc la fermeture du corps au cou et en rouge la fermeture de la tête.  
Pour un effet réussit les fermetures doivent plaquer le mieux possible aux membres et sur l'image ci-dessous on voit que ce ne sont pas de simples tubes, mais qu'il y a une cloison au milieu pour fermer le membre coupé. Si le tube dépasse la fermeture c'est simplement parce que la texture qui sera appliquée sera partiellement transparente, elle simulera des taches de sang et une déchirure irrégulière sur le membre en transparence par dessus la texture du membre lui-même. Mais si c'est pour un personnage de joueur, ce n'est pas si grave si l'alignement n'est pas parfait, on n'est pas sensé mourrir démembré si on joue bien! Mais si on utilise ce modèle également pour des PNJ comme les raiders morts lorsqu'on leur pique leurs fringues, là ce serait mieux de soigner le travail.  
fermetures
 
   
   
Là où les ennuis commencent :  
   
   
En effet, lorsqu'on va créer un modèle pour Fallout 3 les ennuis ne vont pas tarder à arriver malheureusement. Les outils disponibles ne sont pas complètement finalisés et adapté au format uutilisé par Fallout 3.  
Par exemple les plugins d'exportation que ce soit pour 3DSmax ou Blender ne permettent pas encore de produire un modèle directement utilisable.  
On va obtenir un fichier .nif qui semblera valide dans NifSkope, mais si on le charge dans le jeu on risque de se trouver soit avec le néant entre la tête et les mains, soit un plantage du jeu, soit un modèle complètement déformé ou encore avec un éclairage saturé vraiment très moche.  
   
En plus le plugin pour 3DSMax est buggé, lors de l'importation le squelette n'est pas chargé parfois, certains fichiers .nif ne se chargent pas du tout et lors de l'exportation il y a des erreurs également.  
   
Une erreur du plugin d'exportaiuon pour 3DSMax c'est qu'il a une limite de polygone par élément exporté, si on dépasse les 6000 polygones, on va avoir un message d'erreur nous disant qu'il faut qu'un os du squelette doit être actif au moins. Ce message en plus est faux et induit en erreur, on cherche la solution partout ailleurs et c'est seulement après un bon moment que j'ai réalisé ce qui arrivait.  
Dans les dernières versions du plugin pour 3DSMax (niftools-max-plugins-3.4.2.4632.exe), ce défaut a disparu, on peut monter plus haut en nombre de polygones.  
   
Ces mésaventures m'ont conduit à essayer un autre programme, Blender qui m'avait semblé très rébarbatif lorsque je l'avais installé. En fait pour le genre de travail que nous allons faire c'est ce qu'il y a de mieux à mon avis. Les outils sont très puissants et parfaitement adapté à l'usage qu'on va en faire. Je suis encore sous le choc d'avoir réalisé que je me suis cassé la tête avec des mastodontes comme 3DsMax, qui en fait sont bien plus compliqués à utiliser et qui ont des outils bien moins performants pour la modélisation d'un personnage par exemple.  
L'interface est très déroutante au début et il semble qu'on ne va jamais pouvoir rien faire avec ce machin, amsi à ma grande surprise je me suis rendu compte que j'ai appris à m'en servir avec une rapidité surprenante. Après trois soirées d'essais un peu pénibles, j'ai très vite pu le prendre en main car en fait tout est fait pour rendre son utilisation facile. La prise en main des outils de modelage se fait sans problème et je trouve dans ce programme tout ce que je cherchais dans les autres et que je ne trouvais pas ou alors avec difficulté.  
   
Je ne peux que vous encourager à utiliser Blender, ne vous laissez pas déconcerter par l'interface, on s'y fait très vite en ensuite c'est que du bonheur!  
   
   
TRES IMPORTANT : La bonne marche à suivre pour créer un modèle viable et éviter de s'arracher les cheveux:  
   
   
Dans cet exemple je vais utiliser Blender comme outil de modélisation, je vais ensuite utuiliser NifSkope pour finaliser le modèle.  
   
Puisque ça fait saliver le commun des mortels je vais réaliser un modèle dans la grande tradition du nu artistique! Ne nous voilons pas la face, dévoilons les fesses!  
   
Pour simplifier le travail, je vais utiliser une méthode rapide et efficace pour crèer un modèle complexe avec le maximum de chance de réussite.  
   
Le principe est d'importer dans Blender un modèle existant aussi proche que possible du modèle désiré, de le modifier selon nos gouts personnels, d'importer ensuite un squelette viable (pas celui qu'on trouve en décompilant le jeu), de le lier au modèle et d'exporter le modèle au format nif.  
La deuxième étape sera d'utiliser un modèle du jeu existant et d'y importer des éléments du modèle .nif qu'on aura créé.  
   
Je ne vais pas détailler ici la modélisation avec Blender puisque je suis parvenu à retravailler mon modèle en 3 soirées en étant totalement débutant avec Blender. Bon j'avais un avantage, j'avais déjà fait des modèles pour Half-Life 1 avec 3DSMax et pour Half-Life 2 avec Softimage XSI, ce qui me donnait les connaissances de base pour une modélisation 3D.  
   
   
Première étape : Réunir le matériel nécessaire :  
   
Il vous faut Blender tout d'abord : http://www.blender.org/download/get-blender/  
   
Pour Blender il vous faudra installer Pyton, un langage de programmatuion dont il faut installer les fonctions dans Windows. Lors de l'installation de Blender à un moment un message vous demandera d'installer une version de Pyton. Installez la version recommandée et pas une plus récente, actuellement Blender est de la version 2.48a, il vous demandera d'installer Pyton 2.52 qui n'est pas disponible, mais la version 2.54 fera l'affaire. Installez impérativement une version 2.5... , une plus récente ne serait pas compatible.  
On le trouve sur le site de Pyton : http://www.python.org/download/  
Vous aurez également besoin du plugin pour importer et exporter le fichiers .nif , vous le trouverez sur le site de Niftools : http://niftools.sourceforge.net/wiki/NifTools  
Le plugin actuel est la version : blender_nif_scripts-2.4.4-windows.exe on le trouve ici : http://sourceforge.net/project/showfiles.php?group_id=149157&package_id=166219  
Pour ce plugin vous aurez besoin d'une version complémentaire de Pyton, PyFFI qui vous sera demandée lors de l'installation: http://sourceforge.net/project/platformdownload.php?group_id=199269  
   
Lorsque vous aurez tout installé correctement (prenez le temps de le faire dans le bon ordre : Pyton, Blender, PyFFI, blender nif scripts), vous pourrez importer et exporter sans problème les fichiers .nif.  
   
Il vous faut encore un dernier outil pour reconvertir les fichiers nif afin qu'ils soient compatible avec Fallout 3, pour le moment le support de Fallout 3 est limité et en cours de développement.  
Cet outil, c'est NifSkope : http://niftools.sourceforge.net/wiki/NifSkope  
On le trouve ici : http://niftools.sourceforge.net/wiki/NifSkope  
   
   
Deuxième étape : Préparer Fallout 3 pour l'utilisation de mods et réunir les ressource nécessaires:  
   
Les ressources de Fallout 3 se trouve dans des containers, de grands fichiers au format bsa qui contiennent touts les modèles, les textures, sons etc...  
Il faudra décompiler ces containers avec un petit utilitaire : Par exemple FO3_Archive_Utility-34 qui peux ouvir ces fichiers bsa et en extraire le contenu.  
On va extraire le fichier Fallout - Meshes.bsa et Fallout - Textures.bsa. Ces fichiers contiennent touts les modèles et les les textures du jeu.  
On va ensuite aller dans le dossier Data de fallout 3 , c'est là qu'on va placer nos modèles et nos textures personnalisées en gardant la structure de dossier obtenue en extrayant les données des fichiers bsa.  
   
Mais ensuite il faut dire au moteur du jeu d'utiliser le fichier qui se trouve dans Data plutôt que celui qui se trouve dans l'archive BSA. Pour ce faire on va créer ou modifier une fichier nommé ArchiveInvalidation.txt  
C'est un fichier texte avec la liste des objets qu'il faut prendre dans le dossier Data. Si on ne crée pas un tel fichier, le jeu continuera à utiliser les objets d'origine et on ne verra pas de changement.  

Un exemple :

meshes/characters/_male/femaleupperbody.nif
textures/characters/female/upperbodyfemale.dds
textures/characters/female/upperbodyfemale_n.dds
textures/characters/female/upperbodyfemale_sk.dds

 
   
Il y a des utilitaires pour gérer ce fichier et simplifier le travail d'enregistrement des listes de fichiers. Par exemple : Invalidator : http://www.fallout3nexus.com/downloads/file.php?id=229  
   
Parmis les fichiers extraits des BSA, on aura besoin des textures des personnages qu'on veux modifier ainsi que de leurs modèles.  
   
On va utiliser le modèle de corps féminin : Femaleupperbody.nif comme base de départ pour travailler. Il se trouve dans : Data\meshes\characters\_male\  
Ce modèle utilise la texture : upperbodyfemale.dds elle se trouve dans : Data\textures\characters\female  
   
Ne travaillez pas avec des fichiers situés dans d'autres dossiers pour éviter les oublis et mélanges de toutes sortes qui arrivent très vite. Il faut essayer de garder un système de travail méthodique pour garantir une réussite.  
   
Avant d'importer un fichier nif dans Blender, il nous faut encore un squelette, les fichiers nif des personnages en contiennent un, mais il ne faut pas l'utiliser sous peine de se retrouver avec un modèle style Picasso! En effet lors de l'importation ou de l'exportation il se produit des erreurs sur le squelette, il semble pourtant viable dans Blender et dans NifSkope, mais en testant dans le jeu on va se retrouver avec un modèle qui est passé sous un train et un rouleau compresseur!  
Pour éviter ceci, il faut utiliser un squelette qui a été préparé pour cet usage, on en trouve un ici : http://www.fallout3nexus.com/downloads/file.php?id=916  
   
   
Importation du modèle dans Blender :  
   
   
Maintenant on est prêt pour travailler et importer un fichier nif dans Blender, on va importer femaleupperbody.nif, le modèle qui correspond à un déshabillage du joueur, lorsqu'on retire tout costume ou armure.  
C'est pas un modèle nu, mais un modèle avec des sousvêtements, c'est un peu ridicule si avant vous aviez une armure comme celle du Raider à pointes. Vous vous retrouvez en caleçon et chemisette qui semblent sortir du néant! Ca se comprend, vu l'attitude puritaine au US, on peu montrer des cadavres qui expolsent des tueries innomables, mais voir un sein, c'est impensable.  
   
Alors on va remédier à cette situation ubuesque et recréer un corps aux formes avantageuses bien plus valorisant pour notre égo et nos yeux libidineux!  
   
   
La première opération consistera à importer le modèle Femaleupperbody.nif avec les paramètres qui conviennent.  
   
Voici le menu de la boite de dialogue d'importation.  
Importation du fichier nif  
On a sélectionné l'option Import Geometry Only + Parent Selected pour importer seulement le modèle sans le squelette. Selon les options on peut avoir un message d'erreur, dans ce cas on importe le squelette qu'on supprimera ensuite.  
   
Puis on va importer le squelette spécialement fait pour modéliser dans Blender ou 3DSMax. : skeletontest.nif  
Importation du squelette  
Cette fois on a mis l'option Import Skeleton Only + Parent Selected pour n'importer que le squelette.  
   
   
Modification du modèle :  
   
   
On va mettre le squelette en attente dans un layer (couche) caché pour ne pas être gêné, puis on va commencer à éditer le modèle pour obtenir notre modèle en nu intégral.  
Là c'est votre sens artistique qui va faire la différence, si vous aimez les femmes le résultat sera bon certainement!  
Mais il y a des choses qu'il faut savoir, la tête et les mains doivent se raccorder au modèle et c'est le squelette et sa position par rapport au modèle qui fera que ce sera aligné ou non, alors ne bouger pas le squelette ni le modèle. Il faut impérativement que les extrémités des bras et la découpe du cou ne bougent pas d'un milimètre, sinon on verra le raccord.  
Prenez garde lorsque vous allez modifier le modèle à bien les laisser tel quels, ou alors il faudra refaire l'alignement avant d'exporter. Pour refaire l'alignement, on peut importer à nouveau Femaleupperbody.nif avec son squelette cette fois et vérifier l'alignement du squelette et du modèle au niveau du cou et des poignets. En superposant les deux modèles on pourra ajuster facilement les jointures.  
Mais si vous faites cette importation avec squelette d'origine pa dessus le bon, vous risquez de bousillez l'alignement correct des os et ensuite vous obtiendrez un modèle distordu. Dans ce cas après avoir ajusté le modèle aux poignets et au cou, on va éliminer le modèle de référence et les deux squelettes puis réimporter le bon et le lier au modèle à nouveau.  

Lorsque vous essayerez le modèle dans le jeu plus tard, il est possible qu'on remarque un mauvais alignement de la main et du poignet et une fente à cet endroit. C'est du au fait que le squelette spécial utilisé n'est pas parfait. L'alignement au poignet doit souvent être réajusté, pour le faire on va mettre le squelette en Edit Mode et modifier légèrement la position de la main pour corriger l'alignement. Ensuite bien sur il faudra refaire la liaison modèle squelette pour valider la modificatuion.

 
Une astuce pour contourner ce défaut est de placer un élément comme un bracelet ou un colier juste sur la jointure, ça cachera la fente éventuelle, mais surtout ça cachera le "saut" de texture entre les deux éléments. En effet même si on prend soin de bien ajuster les textures pour avoir la même couleur et le même rendu, ce ne sera jamais parfait et on remarquera la jointure. Presque tous les modèles d'origine du jeu ont ce défaut malheureusement.  
   
Une fois que la modélisation est terminée, il faudra relier le modèle au squelette, pour ce faire on sélectionne le modèle en Object Mode , puis on fait SHIFT-clic droit sur le squelette pour les sélectionner les deux. Ensuite on fait CTRL-P pour rendre le squelette parent du modèle. Une boite de dialogue apparait et on choisit l'option Use Armature, puis Name Groupe dans la suivante.  
De cette façon on a relié les sommets du modèles aux os du squelette, on peut voir en Edit Mode le résultat sur le modèle en sélectionnant l'os dans le menu de boutons et en cliquant sur le bouton Select pour sélectionner les sommets reliés à cet os.  
Il y a aussi l'outil Weight Paint qui permet de retoucher facilement si certains sommets sont relié au mauvais os ou si le point de flexion n'est pas optimal.  
Mais allez y doucement et faites de fréquents essais sinon le résultat ne sera pas bon.  
Une fois que le modèle est relié de façon satisfaisante, on peux exporter celui-ci au format nif.  
   
   
Exportation du modèle :  
   
   
Pour exporter on sélectionne le squelette en Object Mode et on va simplement exporter avec le menu d'exportation et l'option Netimmerse Gamebryo (nif)  
   
L'exportation doit normalement se faire sans problème mais ça peut prendre une minute ou plus parfois selon le nombre de polygones.,  
   
Souvent à ce moment on reçoit un message d'avertissement sur des vertex perdus : Warning: lost 0.064491 in vertex weights while creating skin partition.  
   
C'est pas dramatique, mais ça signifie que des sommets de votre modèle étaient reliés à plus de 4 os en même temps, ce qui n'est pas supporté par le moteur du jeu. L'exportateur doit alors éliminer le ou les os les moins important pour n'en garder que quatre.  
C'est pas très satisfaisant car ça peut causer une déformation légère du modèle final.  
Pour éviter ça, avant d'exporter on va sélectionner le modèle et lancer le script Weight Squash  
Script Weight Squash  
Ensuite dans le menu on va choisir une valeur pour weight cutoff, il faut prendre une valeur légèrement supérieure à celle quu'on a un dans l'avertissement , par exemple 0.07  
Pour le nombre d'os minimum on laisse à 3, voir 2 ou 1 pour des cas extrèmes.  
Dans la console on va voir la liste des sommets concernés  
En Edit Mode, des sommets auront été sélectionnés sur le modèle  
On vérifie la iaison modèle squelette en le faisant bouger pour voir si tout s'est bien passé, puis on réexporte.  
On devra peut-être recommencer une nouvelle fois avec une valeur de cutoff plus grande.  
   
Puis on va passer à l'exportation au format nif.  
   
Le menu d'exportation a plusieures options, mais les paramètres strandrads pour fallout 3 conviennent très bien.  
   
Exportation  
   
   
Mise en forme du modèle pour le rendre compatible:  
   
   
On va maintenant passer à une seconde étape qui est de mettre en forme le modèle au format nif qu'on vient d'exporter. En effet l'exportateur n'est pas complètement terminé, le modèle exporté n'est pas utilisable directement.  
   
On va devoir prendre un modèle similaire existant dans le jeu et y importer des éléments de notre modèle, puis supprimer les éléments dont on a plus besoin.  
   
Pour ce faire on va ouvrir un modèle standard du jeu dans une fenêtre de NifSkope, on va prendre femaleupperbody.nif , le modèle en souvêtements.  
   
Dans une autre fenêtre de NifSkope, on va ouvrir notre modèle.  
   
Je vais illustrer avec des images la séquence à suivre pour qu'il n'y ait pas d'équivoque:  
   
   
NifSkope première partie :  
   
Premièrement on va travailler dans notre modèle pour y copier les données de la géométrie :  
C'est le block nommé NitriShapedata, on va faire un clic droit puis choisir Block - Copy Branch pour copier tout le contenu.  
   
Copie de la géométrie  
   
Ensuite on va passer dans l'autre fenêtre de NifTool où on a ouvert le modèle d'origine de femme en souvêtement, ici je l'ai renommé or_femaleupperbody pour ne pas l'écraser lorsqu'on sauvegardera le résultat de notre travail.  
On va faire un clic droit dans la partie vide de la fenêtre (pas sur 0 NiNode) et choisir Block - Paste Branch pour copier les données de la géométrie.  
   
Copie de la géométrie  
   
Mais ce n'est pas tout, on a encore besoin de deux informations pour notre modèle, les données sur la liaison entre le modèle et le squelette et également la découpe en partitions (pour le démembrement)  
   
Dans notre modèle on va ouvrir la partie BSDismemberSkinInstance  
On va y trouver la branche NiSkinData, on va faire comme précédemment, Block - Copy Branch  
   
Donnée de liaison  
   
On passe à nouveau dans le modèle d'origine et on fait Block - Paste Branch dans la partie vide de la fenêtre comme précédemment.  
   
Données de liaison  
   
Il reste encore à copier les données de partition de la peau du modèle en procédant exactement de la même manière :  
   
Copie partitionsDonnées de partition  
   
Après cette première partie du travail dans NifSkope on doit obtenir ceci :  
   
Données copiées  
   
Le numéros de référence des blocks ne seront pas forcément les mêmes si on n'utilise pas le même modèle d'origine. Ces numéros ne sont en fait que les référence des block de données dans le fichier nif. S'il y a plus de blocks dans le modèle d'origine, ceux qu'on y ajoute se mettront à la suite.  
   
NifSkope deuxième partie :  
   
La deuxième partie du travail dans NifSkope consistera à remplacer les données du modèle d'origine par celle de notre modèle. Cette fois on ne va travailler que dans la fenêtre de NifSkope du modèle d'origine.  
   
On ouvre 0 NiNode pour décomposer tout le contenu, on va y voir une première série de références qui sont les éléments de la géométrie du modèle sous forme de NiTriShape.  
Un modèle peut comporter plusieures parties, généralement on a le modèle principal, parfois divisé en deux parties comme dans femaleupperboy. Dans cet exemple il y a Arms01 (le corps) et UpperBody (les souvêtements).  
Il y a également les éléments qui vont servir pour fermer le modèle en cas de démembrement, en quatre parties,  

Dans l'image ci-dessous on voit dans l'encadré rouge les six partie du modèles :

MeatCapBoby qui sert à fermer le corps cou lorsqu'il y a démembrement, MeatCapLimbs qui sert à fermer les membres lorsqu'il y a démembrement, UpperBody pour les souvêtements, Arms01 pour le corps, bodymeat quui sert à fermer le cou lorsqu'on perd la tête et headmeat pour fermer le cou côté tête.

La suite ce sont les éléments du squelette associé au modèle.

 
détails du nif  
Ci dessus on voit dans la partie inférieure de NifSkope, les détails du block sélectionnée en haut. Ici on a sélectionné Arms01 dont on va remplacer les données par celle de notre modèle.  
   
Ce qui nous intéresse, c'est la ligne Data, c'est ici que le block de la géométrie de ce NitriShape est référencé, il porte le numéro 46 (flèche rouge)  
Ce que nous allons faire, c'est remplacer cette référence par celle de la géométrie que nous avons copié dans notre modèle.  
On va donc remplacer 46 par 73. Il suffit de double cliquer sur 46 pour pouvoir éditer et y mettre 73. (Encore une fois ce numéro 46 ou 73 dépend du modèle, ce peut être différent si le modèle à plus ou moins d'éléments ou utilise un nombre d'os du squelette différent).  
   
Immédiatement on va voir dans la fenêtre 3D à droite que le modèle a changé!  
Mais Catastrophe!!! Il y a un problème, le modèle est complètement déformé! En fait c'est normal car les données de liaison au squelette sont incompatibles.  
Il faut encore mettre en place NiSkinData et NiSkinPartition  
   
Changement de la géométrie  
   
On va ouvrir la partie BSDismemberSkinInstance du NitriShape Arms01  
Sur la partie de droite on voit que la géométrie est complètement déformée après avoir échangé les données de géométrie  
Partie NiSkinData  
Dans la partie Block Détails on trouve la référence au block contenant les données de liaison au squelette NiSkinData, ici c'est 48. On va remplacer 48 par 74 pour mettre en place les données de liaison correspondant à la nouvelle géométrie.  
Et vlan, c'est encore plus catastrophique, cette fois on a un bel exemple de l'art abstrait! Une sorte de fleur ou de cristal, mais c'est pas cvraiment ce qu'on recherche!  
On va encore charger les données de partition de la peau pour corriger cette horreur!  
   
Partie NiSkinPartition  
   
Les données de partition sont juste au-dessous de celle de celle deNiSkinData, on va encore une fois remplacer la référence, on remplace 49 par 75.  
Aie!!! C'est déjà mieux, mais ce qu'on obtient c'est un joli Piscasso réalisé une nuit d'ivresse!  
Qu'est ce qui ne va pas encore un fois dans ce modèle, la réponse c'est que lors de l'exportation, le plugin n'a pas forcément exporté les données avec le même ordre d'os du squelette que dans le modèle d'origine du jeu. Dans le fichier nif les références aux os du squelette ne sont pas forcément les mêmes.  
Il faut bien comprendre que ces références ne sont pas inhérente au modèle, mais elle sont créées par NifSkope lorsqu'il décompile le fichier modèle nif. Nifskope lit le fichier et découpe le modèle en parties qu'il référencie et identifie, mais ensuite lorsqu'on change une partie des données provenant d'un fichier ayant d'autres références, ces références ne correspondent plus à la réalité, il faut les remettre en ordre à la main.  
   
Résultat de la copie  
   
NifSkope troisième partie :  
   
Cette fois nous allons remettre de l'ordre dans notre fichier nif afin que les références correspondent à la géométrie du modèle. Sinon, l'os du bras affectera la cuisse et le pied la clavicule etc...  
   
On va travailler avec deux fenêtre de NifSkope, une pour le modèle d'origine qu'on modifie et l'autre pour le modèle cré avec Blender ou 3DSMax.  
   
On va sélectionner pour les deux modèles, la partie BSDismemberSkinInstance, et dans la section Block Details on va comparer le nombre d'os du squelette utilisés et le nombre de partitions.  
On va mettre dans le modèle d'origine qu'on modifie les mêmes nombres, ici on a Num Bones 25 et Num Partitions 32 dans le modèle qu'on a créé, mais dans le modèle d'origine on a Num Bones 25 mais Num Partitions 9, on remplacealors ce 9 par 32.  
   
Comparaison
   
Les deux flèches rouges nous montrent les deux ordres différents de référencement des os du squelette.  
   
Il faut que dans le fichier qu'on modifie, on aie le même ordre des noms des os que dans le modèle créé.  
   

Dans notre modèle exporté de Blender on a l'ordre :

Bip01 L Foot

Bip01 LUparmTwistBone

Bip01 R Foot

Bip01 R Forearm

etc...

 
   
Il faut impérativement retrouver le même ordre dans le modèle modifié. Pour ce faire, on va simplement changer le numéro de référence pour chaque os.  
Pour savoir quel est le bon numéro, il suffit de regarder au-dessus, il y a la liste avec les numéros et les noms.  
   
On voit que Bip01 L foot c'est le 50, Bip01 LUparmTwistBone c'est le 18, Bip01 R Foot c'est le 52 , Bip01 R Forearm c'est le 20 etc...  
   
On va alors remplacer ces numéros dans la liste des os du modèle modifié et cette fois on va avoir un modèle qui ressemble à quelque chose.  
   
Remise en ordre des os du squelette  
Cette fois c'est bon, le modèle est correctement représenté, mais en fait ce n'est pas complètement terminé car il faut encore une dernière étape pour corriger les partitions de démembrement. Si on laisse le modèle tel quel et qu'on le charge dans le jeu on aura la mauvaise surprise de voir des parties de la peau mal placées ou abscentes. Ceci est du au fait que le block des partitions copié n'est pas forcément correspondant au os du squelette comme pour les liaisons, il faut reconstruire ces partition.  
   
On va sélectionner le NiTriShape Arms01, faire un clic droit et choisir : Mesh - Make Skin Partition  
Dans la boite de dialogue, on laisse 4 et 18 et on clique sur OK.  
   
Reconstruction des partitionsdialogue partitions  
   
Cette fois notre modèle est valide et utilisable, mais il faut encore faire les nettoyage avant de sauvegarder et de tester.  
   
NifSkope quatrième partie :  
   
Nettoyage et finalisation du modèle avant la sauvegarde:  
   
On va supprimer les block inutiles, c'est à dire les blocks remplacés et qui sont tout en bas de la liste et également le block du NiTriShape UpperBody qu'on ne va pas utiliser pour notre modèle en tenue d'Eve.  
On va sélectionner les trois éléments inutiles au bas de la liste et faire clic droit puis on choisi Block - Remove Branch, puis on fait de même pour le NiTriShape UpperBody  
   
nettoyagenettoyage  
nettoyage  
On a cette fois un modèle valide et néttoyé des élément inutiles, on va encore finaliser notre fichier nif en l'assainissant, c'est à dire qu'on va passer la suite des utilitaires de contrôle du format pour corriger et remettre en ordre les blocks de données. C'est important car le moteur de Fallout 3 risque de planter si on lui donne un fichier en pagaille.  
On choisi dans le menu Spells - Sanitize et on passe successivement les 5 contrôles.  
finalisation  
On se retrouve en fin de contrôle avec un fichier nif bien propre sur lui et qui a le maximum de chance de fonctionner correctement  
Finalisation  
On voit ici qu'on a une liste bien ordrée des blocks, identique à celle du jeu originel.  
Résultat Final  
   
Il n'y a plus qu'à sauvegarder en utilisant le nom femaleupperbody.nif pour remplacer le modèle en caleçon et chemisette du jeu originel.  
   
Dans le cas où on voudrait créer un nouvel élément d'armure ou d'habillage sans remplacer un modèle existant, il faudra faire appel au +, l'éditeur de niveaux de Fallout 3 pour modifier les inventaires des marchands par exemple ou pour mettre en place une armoire contenant ces nouveaux éléments du jeu.  
   
Quelques images du modèle en situation dans le jeu :  
   
Vue de dos  
Course  
   

Bon on se dit cette fois ça y est, c'est tout bon, mon modèle est fonctionel, il n'y a plus qu'à jouer. En fait lorsqu'on va jouer on va remarquer un problème gênant, le démembrement ne marche pas!!!

 
En fait il marche, mais c'est le foutoir, des éléments du corps disparaissent alors qu'ils ne le devraient pas, des membre arrachés sont crés mais le modèle a toujours son membre attaché etc...  
   
Ceci vient du fait que lorqu'on a exporté notre modèle de Blender, les partitions étaient mal attribuée (ça n'arrive pas si on modifie un modèle valide) ou alors lors de la copie des éléments avec NifSkope, les partitions n'ont pas été copiées dans le bon ordre.  
   
En plus lors de la modification d'un personnage, on conserve les partitions du modèle d'origine et la liaison au squelette, ce qui fait qu'on minimise les erreurs, mais même dans ce cas il y a toujours des difficultés.  
   
Je vais donc aborder cette partie délicate du modelage dans un nouveau chapitre intitulé : Le démembrement et les partitions du modèle.